(undo-with-space) Added. C-x C-u now bound to this rather than undo.
authorEric S. Raymond <esr@snark.thyrsus.com>
Sat, 27 Mar 1993 01:58:20 +0000 (01:58 +0000)
committerEric S. Raymond <esr@snark.thyrsus.com>
Sat, 27 Mar 1993 01:58:20 +0000 (01:58 +0000)
This change was inspired by the LCD package undo-with-space by Thomas
Narten, but my code is simpler and uses the 19 event features.

lisp/gosmacs.el

index 93bbbaa5b80aba1ec70e3870d6206040aa51b00c..359ea1cc344c739d02149c43a8017e5c8e0fd962 100644 (file)
@@ -46,7 +46,7 @@ Use \\[set-gnu-bindings] to restore previous global bindings."
           ("\C-x\C-n" next-error)
           ("\C-x\C-o" switch-to-buffer)
           ("\C-x\C-r" insert-file)
-          ("\C-x\C-u" undo)
+          ("\C-x\C-u" undo-with-space)
           ("\C-x\C-v" find-file-other-window)
           ("\C-x\C-z" shrink-window)
           ("\C-x!" shell-command)
@@ -114,4 +114,21 @@ From the window at the lower right corner, select the one at the upper left."
   (interactive)
   (recenter 0))
 
+(defun undo-with-space ()
+  "Enter an undo loop that continues while you type SPC characters.  Exit
+with ESC; any other character exits and begins a new command."
+  (interactive)
+  (undo-start)
+  (undo-more 1)
+  (message "Hit <space> to undo more")
+  (let ((event 32))
+    (while (equal event 32)
+      (message "undoing..")
+      (undo-more 1)
+      (message "Hit <space> to undo more")
+      (setq event (read-event)))
+    (message "Finished undoing.")
+    (if (not (equal event 27))
+       (setq unread-command-event event))))
+
 ;;; gosmacs.el ends here